﻿#include <sstream>
#include "Elements\Label.h"
#include "NumberGeneratorScreen.h"
#include "ResultScreen.h"
#include "Elements\Image.h"

using namespace SDL::UTILS;
using namespace SDL::ELEMENTS;

ResultScreen::ResultScreen(NGConfig const& _config, std::vector< std::pair<Uint32, Uint32> > const& _datas, int _total, int _time) : APopUpScreen()
	, m_config(_config), m_datas(_datas), m_total(_total), m_time(_time)
{
	m_background = new Image(NumberGeneratorScreen::PATH + "images\\result.png");
	m_background->SetPosition(Rect(150, 100));
	this->Init();
}

ResultScreen::~ResultScreen()
{
}

void ResultScreen::Init()
{
	Font f("C:\\Windows\\Fonts\\arial.ttf", 16);
	SDL_Surface* dst = m_background->GetSurface()->GetSurface();

	Rect p(32, 32);
	Label l(&f, Color(255, 255, 255));

	l.Render(L"Résultats (TOP 10)", Font::RenderBlended);
	p.SetX(250 - l.GetSize().GetW() / 2);
	l.SetPosition(p);
	l.Draw(dst);
	p.SetY(p.GetY() + 18);
	p.SetY(p.GetY() + 18);
	p.SetY(p.GetY() + 18);

	for (int i = 0; i < m_datas.size(); i++)
	{
		std::stringstream st;
		st << "#";
		st << m_datas[i].first;
		st << ": ";
		st << m_datas[i].second;
		st << " tirages";

		l.Render(st.str().c_str(), Font::RenderBlended);
		
		p.SetX(250 - l.GetSize().GetW() / 2);
		l.SetPosition(p);
		l.Draw(dst);
		p.SetY(p.GetY() + 20);
	}

	{
		p.SetY(p.GetY() + 20);
		std::stringstream st;
		st << "Total: ";
		st << m_total;
		st << " tirages.";
		l.Render(st.str().c_str(), Font::RenderBlended);
		p.SetX(250 - l.GetSize().GetW() / 2);
		l.SetPosition(p);
		l.Draw(dst);
	}

	{
		p.SetY(p.GetY() + 20);
		std::stringstream st;
		st << "Temps: ";
		st << m_time;
		st << " secondes.";
		l.Render(st.str().c_str(), Font::RenderBlended);
		p.SetX(250 - l.GetSize().GetW() / 2);
		l.SetPosition(p);
		l.Draw(dst);
	}
}
